In object-oriented programming, a class is a programming language construct that is used as a blueprint to create objects. This blueprint includes attributes and methods that the created objects all share. One way to form new classes (instances of which are called objects) using classes that have already been defined is to use inheritance.
The new classes, known as derived classes, take over (or inherit) attributes and behavior of the pre-existing classes, which are referred to as base classes (or ancestor classes). It is intended to help reuse existing code with little or no modification.
Multiple inheritances of properties of class-based object are challenging to manage because of their interdependencies. A simple accretive allocation strategy where each property follows the preceding property in declaration order would not work. Furthermore, looking up by property name is both slow and memory intensive.